[re:Invent 2019] EC2 Image Builder でコンポーネントを作成してみた #reinvent

[re:Invent 2019] EC2 Image Builder でコンポーネントを作成してみた #reinvent

Clock Icon2019.12.03

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、コンサル部の望月です。

いよいよ Re:Invent が始まりました!早速でてきたサービスの中で、すでに弊社ブログ内でも盛り上がっている EC2 Image Builder が、大変楽しそうだったので、いろいろ試してみようとおもいます。

Image Builder ではコンポーネントを使って、様々なソフトウェアや設定を定義することができ、最初から提供されているものとは別にユーザーで作成もすることができます。

本記事ではコンポーネントを作成を使って Apache のインストールを試してみました。

サービスの内容については、下記ブログで詳しく書かれているので、読んでみてください。

EC2のイメージ作成を劇的に効率化するEC2 Image Builderが発表されました! #reinvent

[re:Invent 2019] EC2イメージビルダーをサクッと試してみた #reinvent

やってみた

コンポーネントの作成

EC2 Image Builder のサポートページから Components の作成を行います。

  • EC2 Image Builder のサポートページからサイドバーを開き、『Components』をクリック
  • 『Create component』をクリック

  • OSには Linux を指定
  • Component name には任意の名前をつける
    • ここでは『ApacheInstall』を記入
  • Component version には任意のバージョンをつける
    • ここでは『1.0.0』を記入

  • Definition document に実行させたいコンテンツを記入する
    • 以下に実行したコンテンツになります
      • build でOSの最新化及び Apache のインストール、有効化
      • validate でパッケージがインストールされたかの確認
      • test で 80 番ポートへ接続できることの確認
name: Apache Install
description: This is Apache Install testing document.
schemaVersion: 1.0

phases:
  - name: build
    steps:
      - name: InstallLinuxUpdate
        action: UpdateOS
      - name: InstallApache
        action: ExecuteBash
        inputs:
          commands:
            - sudo yum install httpd -y
            - sudo systemctl enable httpd
            - sudo systemctl start httpd

  - name: validate
    steps:
      - name: CheckApache
        action: ExecuteBash
        inputs:
          commands:
            - rpm -qi httpd

  - name: test
    steps:
      - name: TestApache
        action: ExecuteBash
        inputs:
          commands:
            - curl localhost

  • 保存し、コンポーネントが作成されていることを確認します

イメージパイプラインの作成

イメージパイプラインの作成時に先程作成したコンポーネントを指定します

  • イメージパイプライン内の Build components から 『Browse Build components』をクリック

  • Select build components から検索条件を『Created by me』に変更し、表示された先ほど作成したコンポーネントを選択

  • イメージパイプラインを作成したら『Run pipeline』を選択し、パイプラインを実行します

AMI の確認

EC2 サービスページから AMI が作成されていることを確認します。

  • AMI を確認し、起動する

  • 起動したインスタンスへアクセスし、Apache のページが表示されることを確認します

まとめ

EC2 Image Builder を使って Apache のインストールを行うことができました。

実際やっていうことは User Data でもできる内容かとは思いますが、検証やテストといったフェースを入れることで、失敗時に AMI の作成を止めると言ったことができるため、安心して利用できるかと思います。

また、個人的ハマりどころとして、最初試したところ SSM Agent のタイムアウトとなり、イメージパイプラインが実行エラーとなりました。確認したところ、VPC やサブネットを指定せずに実行するとデフォルト VPC が使われるのですが、私のデフォルト VPC からインターネットへの接続ができないようになっており、エラーとなっていたようです。

あまり、意識しないところでのエラーではあるので、もし同じエラーで悩んでいる人はデフォルト VPC の環境確認をしてみるといいかもしれません。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.